package ConectividadDatos;

import ControlEscolar.DTOS.AlumnoDTO;
import ControlEscolar.DTOS.CalificacionesDTO;
import ControlEscolar.DTOS.CicloEscolarDTO;
import ControlEscolar.DTOS.CiclosConfiguracionDTO;
import ControlEscolar.DTOS.MateriaDTO;
import ControlEscolar.DTOS.ProfesorDTO;
import ControlProfesores.ActividadProfesorDTO;
import ControlProfesores.AgendaProfesorDTO;
import DTOS.sistema.GeneralesUsuarioDTO;
import DTOS.sistema.ModuloMenuDTO;
import DTOS.sistema.UsuarioSistemaDTO;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;

public class CargadorDatos {

    public UsuarioSistemaDTO usuarioSistemaDTO(ResultSet rs) throws SQLException {
        UsuarioSistemaDTO us = new UsuarioSistemaDTO();

        us.setId(rs.getInt("id"));
        us.setUsuarioNombre(rs.getString("usuario_nombre"));
        us.setClaveUsuario(rs.getString("clave_usuario"));

        us.setEstado(rs.getInt("estado"));
        us.setFuncionInicio(rs.getString("funcion_inicio"));

        return us;
    }

    public GeneralesUsuarioDTO generalesUsuarioDTO(ResultSet rs) throws SQLException {
        GeneralesUsuarioDTO gen = new GeneralesUsuarioDTO();

        gen.setId(rs.getInt("id"));
        gen.setIdUsuarioSistema(rs.getInt("id_usuario_sistema"));
        gen.setNombre(rs.getString("nombre"));
        gen.setApParterno(rs.getString("ap_paterno"));
        gen.setApMaterno(rs.getString("ap_materno"));
        gen.setCalle(rs.getString("calle"));
        gen.setColonia(rs.getString("colonia"));
        gen.setDelegacionMunicipio(rs.getString("delegacion_municipio"));
        gen.setEstadoProvincia(rs.getString("estado_provincia"));
        gen.setPais(rs.getString("pais"));
        gen.setCodigoPostal(rs.getString("codigo_postal"));
        gen.setTelfonoLocal(rs.getString("telefono_local"));
        gen.setTelefonoMobil(rs.getString("telefono_mobil"));
        gen.setEmail(rs.getString("email"));
        gen.setReferenciaPersonal1(rs.getString("referencia_personal1"));
        gen.setReferenciaPersonal2(rs.getString("referencia_personal2"));
        gen.setFotoUrl(rs.getString("foto_url"));

        return gen;
    }

    public ModuloMenuDTO moduloMenuDTO(ResultSet rs) throws SQLException {
        ModuloMenuDTO mod = new ModuloMenuDTO();
        mod.setId(rs.getInt("id"));
        mod.setGrupo(rs.getInt("grupo"));
        mod.setTipo(rs.getInt("tipo"));
        mod.setTitulo(rs.getString("titulo"));
        mod.setUrl(rs.getString("url"));
        return mod;
    }

    

    /**
     * carga de datos objeto del profesor
     *
     * @param rst
     * @return
     * @throws SQLException
     */
    public ProfesorDTO profesoresDTO(ResultSet rst) throws SQLException {
        ProfesorDTO x = new ProfesorDTO();
        x.setId(rst.getInt("id"));
        x.setTitulo(rst.getInt("titulo"));
        x.setNombres(rst.getString("nombres"));
        x.setApellidoPaterno(rst.getString("apellido_paterno"));
        x.setApellidoMaterno(rst.getString("apellido_materno"));
        x.setDireccion(rst.getString("direccion"));
        x.setTelefono(rst.getString("telefono"));
        x.setCelular(rst.getString("celular"));
        x.setEmail(rst.getString("email"));
        x.setCp(rst.getString("cp"));
        x.setFechaNacimiento(rst.getString("fecha_nacimiento"));
        return x;
    }

    /**
     * cargador datos ciclo escolardto
     *
     * @param rst
     * @return
     * @throws SQLException
     */
    public CicloEscolarDTO cicloEscolarDTO(ResultSet rst) throws SQLException {
        CicloEscolarDTO x = new CicloEscolarDTO();
        x.setId(rst.getInt("id"));
        x.setNumero(rst.getInt("numero"));
        x.setNombre(rst.getString("nombre"));
        x.setDescripcion(rst.getString("descripcion"));
        x.setEstado(rst.getInt("estado"));
        return x;
    }

    /**
     * cargador de datos materia
     *
     * @param rst
     * @return
     * @throws SQLException
     */
    public MateriaDTO materiaDTO(ResultSet rst) throws SQLException {
        MateriaDTO mat = new MateriaDTO();
        mat.setId(rst.getInt("id"));
        mat.setCicloID(rst.getInt("ciclo_id"));
        mat.setNombreMateria(rst.getString("nombre"));
        return mat;
    }

    /**
     *
     * @param rst
     * @return
     * @throws SQLException
     */
    public CiclosConfiguracionDTO ciclosConfiguracionDTO(ResultSet rst) throws SQLException {
        CiclosConfiguracionDTO c = new CiclosConfiguracionDTO();
        c.setId(rst.getInt("id"));
        c.setNumeroCiclo(rst.getInt("numero_ciclo"));
        c.setDescripcion(rst.getString("descripcion_corta"));
        c.setEstado(rst.getInt("estado"));
        return c;
    }

    public AlumnoDTO alumnoDTO(ResultSet rst) throws SQLException {
        AlumnoDTO x = new AlumnoDTO();
        x.setId(rst.getInt("id"));
        x.setNombre(rst.getString("nombre"));
        x.setAppat(rst.getString("appat"));
        x.setApmat(rst.getString("apmat"));
        x.setFenac(rst.getString("fenac"));
        x.setNombreTutor(rst.getString("nombre_tutor"));
        x.setGrado(rst.getInt("grado"));
        x.setGrupo(rst.getString("grupo"));
        x.setDireccion(rst.getString("direccion"));
        x.setTelefono(rst.getString("telefono"));
        x.setMatricula(rst.getString("matricula"));
        x.setInfo(rst.getString("info"));
        return x;
    }

    public CalificacionesDTO calificacionesDTO(ResultSet rst) throws SQLException {
        CalificacionesDTO x = new CalificacionesDTO();
        x.setId(rst.getInt("id"));
        x.setAlumnoId(rst.getInt("alumno_id"));
        x.setMateriaId(rst.getInt("materia_id"));
        x.setCiclo(rst.getInt("ciclo"));
        x.setParcial(rst.getInt("parcial"));
        x.setCalificacion(rst.getDouble("calificacion"));
        return x;
    }
    
    public ActividadProfesorDTO actividadesProfesorDTO(ResultSet rst) throws SQLException {
        ActividadProfesorDTO x = new ActividadProfesorDTO();
        x.setId(rst.getInt("id"));
        x.setDia(rst.getInt("dia"));
        x.setIdProfesor(rst.getInt("id_profesor"));
        x.setHoraInicio(rst.getInt("hora_inicio"));
        x.setHoraFin(rst.getInt("hora_fin"));
        x.setDescripcion(rst.getString("descripcion"));
        x.setEstado(rst.getInt("estado"));
    
        
        HashMap horas = new HashMap();
        horas.put(1, "7 AM");
        horas.put(2, "8 AM");
        horas.put(3, "9 AM");
        horas.put(4, "10 AM");
        horas.put(5, "11 AM");
        horas.put(6, "12 PM");
        horas.put(7, "1 PM");
        horas.put(8, "2 PM");
        horas.put(9, "3 PM");
        horas.put(10, "4 PM");
        
        String horaInicio = (String) horas.get(x.getHoraInicio());
        String horaFin    = (String) horas.get(x.getHoraFin());
        
        System.out.println( horaInicio + " - " + horaFin);
        
        x.setHorario(horaInicio + " - " + horaFin);
        
        return x;
}
}
